Autogenerar objetos TypeScript desde Spring

Descripcion

Para autogenerar objetos para utilizar en TypeScript a partir de codigo de un proyecto de Spring utilizaremos la extension habarta.typescript-generator.

Metodo

Para utilizar la extension primeros tenemos que añadirla en el archivo pom.xml de nuestro proyecto:

<plugin>
    <groupId>cz.habarta.typescript-generator</groupId>
        <artifactId>typescript-generator-maven-plugin</artifactId>
        <version>2.34.976</version>
        <executions>
            <execution>
                <id>generate</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <phase>process-classes</phase>
            </execution>
        </executions>
        <configuration>
            <jsonLibrary>jackson2</jsonLibrary>
            <classPatterns>
                <pattern>main.model.*</pattern>
                <pattern>main.dto.*</pattern>
            </classPatterns>
            <outputKind>module</outputKind>
        </configuration>
</plugin>

Introducimos el plugin en el apartado plugins del pom.xml

A continuación tenemos que configurar el plugin para que genere los objetos segun las clases que nosotros queramos.

El plugin tiene varias opciones para seleccionar las clases, en este caso usaremos classPatterns para seleccionar un patron concreto

La parte que tenemos que modificar el plugin es esta:

<classPatterns>
    <pattern>main.model.*</pattern>
    <pattern>main.dto.*</pattern>
</classPatterns>

En cada una de las etiquetas pattern introduciremos el paquete donde tenemos nuestras clases seguido de un * para seleccionar todas las clases dentro de ese paquete

Otra de las configuraciones que podemos hacer es de la etiqueta outputKind que podemos ponerla como module o como global esto solo afectará a si las interfaces llevan el modificador export en su declaración.

A continuación tenemos que compilar el proyecto (Antes de lanzar el plugin siempre tenemos que compilar):

Podemos hacerlo con el siguiente comando:

> mvn compile

O seleccionando el goal compile de maven desde el IDE:

A continuación ejecutamos el plugin de habarta.typescript-generator, podemos hacerlo con comando o desde el IDE:

> mvn typescript-generator:generate

El archivo que contiene todo el código resultante para ser utilizado en TypeScript se guarda en:

java\target\typescript-generator\Academy2.d.ts

El nombre del archivo viene dado por el nombre del proyecto (artifactId) que le tengamos puesto en el pom.xml

Resultado final del archivo:

Tags

JavaScript | TypeScript | habarta | generator